<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of FinalizarPracticas
 *
 * @author boscaru
 * @export Modules
 * export-metadata RequiredRoles:ROLE_ENTERPRISE
 */
class FinalizarPracticas extends Module {

    public function index() {

        $nit = $this->request->get("NitEmpresa");

        if ($nit != null) {

            $solicitudes = $this->model->applications->GetByEmpresa($nit);
            $practicante = array();

            foreach ($solicitudes as $item) {
                if ($item->getPracticanteActual() != null) {
                    $solicitud = new Practicantes();
                    $practicanteActual = $item->getPracticanteActual();
                    $codigo = $item->getPracticanteActual()->GetCodigoEstudiante();
                    $estudiante = $this->model->students->GetById($codigo);
                    $practicanteActual->setEstudiante($estudiante);
                    if ($item->getEstado() == EstadoSolicitud::Procesada) {
                        array_push($practicante, $practicanteActual);
                    }
                }
            }
          
            $this->assign("practicantes", $practicante);
            $this->assign("procesar", $this->route->action("Procesar"));
          
            $this->display("index");
        } else {
            $this->Error("Null");
        }
    }

    public function Procesar() {
        $IdSolicitud = $this->request->get("IdSolicitud");

        if ($IdSolicitud != null) {

            $solicitud = $this->model->applications->GetById($IdSolicitud);
            if ($solicitud != null) {
                $codigo = $solicitud->getPracticanteActual()->GetCodigoEstudiante();
                $estudiante = $this->model->students->GetById($codigo);
                $solicitud->getPracticanteActual()->setEstudiante($estudiante);
                $planEstudio = $estudiante->getPlanEstudio();
                $this->assign("PlanEstudio", $planEstudio);
                $this->assign("Solicitud", $solicitud);
                $this->assign("action", $this->route->action("save"));
                $this->display("Procesar");
            } else {
                $this->Error("Null");
            }
        } else {
            $this->Error("Null");
        }
    }

    public function Error($tipo) {

        if ($tipo == "Null") {
            $this->addMessage(new Message("", "Error al enviar datos", Message::ERROR));
        }

        $this->assign("regreso", $this->route->moduleAction("VerSolicitudes", "index"));
        $this->display("Error");
    }

    /**
     * @export-metadata Bind:this.Solicitud
     */
    public function save() {
        Loader::using("models::entities::Solicitudes");

        if ($this->request->submitted()) {

            $IdSolicitud = $this->request->post("IdSolicitud");
            $Solicitud = $this->model->applications->GetById($IdSolicitud);
            $TienePendiente = $this->request->post("TienePendiente");

            if ($TienePendiente == "true") {
                $Pendientes = $this->request->post("Pendientes");
                $Solicitud->setPendientes($Pendientes);
                $Solicitud->setTienePendiente(true);
                $this->model->applications->Update($Solicitud);
                $this->display("Volver");
            } else {
                //$data = $this->request->post("finalizar");
                $Solicitud->setEstado(EstadoSolicitud::Finalizada);
                $Solicitud->setTienePendiente(false);
                $this->model->applications->Update($Solicitud);
                $this->addMessage(new Message("", "Solicitud finalizada!!!", Message::SUCCESS));
                $this->display("Volver");
            }
        } else {
            $this->index();
        }
    }

    private $Solicitud;

    public function getSolicitud() {
        if (!$this->Solicitud) {
            $this->Solicitud = new Solicitudes();
        }
        return $this->Solicitud;
    }

}

?>
